🔗 API de Relações e UsuarioRelacoes - Documentação Completa

📋 Visão Geral

A API de Relações e UsuarioRelacoes é responsável por toda a gestão de tipos de relacionamentos e vínculos entre usuários no sistema CordenaAi. Inclui o cadastro de tipos de relação (como Professor, Responsável, Aluno) e a criação de vínculos específicos entre usuários, permitindo estruturar hierarquias e permissões no sistema.

🎯 Endpoints Disponíveis

Módulo Relações (Tipos de Relacionamento)

1. GET /api/Relacoes

Obter Lista de Relações

2. POST /api/Relacoes

Criar Nova Relação

3. GET /api/Relacoes/{id}

Obter Relação por ID

4. PUT /api/Relacoes/{id}

Atualizar Relação

5. DELETE /api/Relacoes/{id}

Excluir Relação

Módulo UsuarioRelacoes (Vínculos entre Usuários)

6. GET /api/UsuarioRelacoes/usuario/{identificador}

Obter Relações por Usuário

7. GET /api/UsuarioRelacoes/responsavel/{identificador}

Obter Relações por Responsável

8. GET /api/UsuarioRelacoes/{id}

Obter Relação por ID

9. POST /api/UsuarioRelacoes

Criar Relação de Usuário

10. PUT /api/UsuarioRelacoes/{id}

Atualizar Relação de Usuário

11. DELETE /api/UsuarioRelacoes/{id}

Excluir Relação de Usuário

🔧 Modelo de Dados

Estrutura da Relação (Tipo de Relacionamento)

{
  "id": "integer",
  "relacaoNome": "string",
  "relacaoDescricao": "string"
}

Estrutura da UsuarioRelacao (Vínculo entre Usuários)

{
  "id": "integer",
  "usuarioId": "string",
  "usuarioNome": "string",
  "usuarioResponsavelId": "string",
  "usuarioResponsavelNome": "string",
  "relacaoId": "integer",
  "relacaoNome": "string",
  "dataCadastro": "datetime",
  "dataAtualizacao": "datetime"
}

🔐 Autenticação e Autorização

Todos os endpoints requerem:

📊 Casos de Uso Principais

1. Configuração de Tipos de Relação

POST /api/Relacoes
Content-Type: application/json
Authorization: Bearer {token}

{
  "relacaoNome": "Professor",
  "relacaoDescricao": "Professor da turma"
}

2. Criação de Vínculo entre Usuários

POST /api/UsuarioRelacoes
Content-Type: application/json
Authorization: Bearer {token}

{
  "usuarioId": "user-123",
  "usuarioResponsavelId": "resp-456",
  "relacaoId": 1
}

3. Consulta de Relações por Usuário

GET /api/UsuarioRelacoes/usuario/[email protected]
Authorization: Bearer {token}

4. Consulta de Relações por Responsável

GET /api/UsuarioRelacoes/responsavel/resp-456
Authorization: Bearer {token}

⚠️ Validações e Regras de Negócio

Validações Obrigatórias

Regras de Negócio

🚨 Tratamento de Erros

Códigos de Status HTTP

Formato de Erro

{
  "error": "string",
  "message": "string",
  "details": "string",
  "timestamp": "datetime"
}

📈 Performance e Limitações

Limitações

Otimizações

🔄 Integração com Outros Módulos

Módulos Relacionados

📱 Uso em Aplicações

Web App

Mobile App

🛠️ Manutenção e Monitoramento

Logs Importantes

Métricas Monitoradas

📚 Exemplos Práticos

Fluxo Completo de Configuração

  1. Criação de Tipos de Relação

    POST /api/Relacoes
    {
      "relacaoNome": "Responsável",
      "relacaoDescricao": "Responsável legal pelo atleta"
    }
    
  2. Estabelecimento de Vínculo

    POST /api/UsuarioRelacoes
    {
      "usuarioId": "atleta-123",
      "usuarioResponsavelId": "pai-456",
      "relacaoId": 1
    }
    
  3. Consulta de Relacionamentos

    GET /api/UsuarioRelacoes/usuario/atleta-123
    

Fluxo de Gestão Hierárquica

  1. Definição de Estrutura: Criação de tipos de relação
  2. Associação de Usuários: Estabelecimento de vínculos
  3. Consulta de Hierarquia: Visualização de relacionamentos
  4. Manutenção: Atualização e remoção de vínculos

🔍 Identificadores Flexíveis

O sistema suporta identificação de usuários através de:

Exemplos de Uso

# Por ID
GET /api/UsuarioRelacoes/usuario/123e4567-e89b-12d3-a456-426614174000

# Por Email
GET /api/UsuarioRelacoes/usuario/[email protected]

# Por Username
GET /api/UsuarioRelacoes/usuario/joao.silva

Versão: 1.0
Última Atualização: Outubro de 2025
Responsável: Equipe de Desenvolvimento CordenaAi